/*
 * @Author: qiulin 1746365080@qq.com
 * @Date: 2024-10-25 09:54:12
 * @LastEditors: qiulin 1746365080@qq.com
 * @LastEditTime: 2024-10-25 09:55:10
 * @FilePath: /SGSim/DataStructure/Input/Constraint/TEMPDData.h
 */

/**
 *  @file
 *  @brief TEMPDData 单元数据
 *
 *  @author  qiulin
 *  @date    2024.10.25
 *  @version  v1.0
 *  @par Copyright(c):  ShenGong  Simulation corporation
 */

#pragma once
#include <vector>

#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Common/SetBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/// @brief 为结构模型中尚未在 TEMP 或 TEMPN1（用于传热分析）条目上指定温度的所有网格点定义温度值。
struct DECLSPEC TEMPDData : public SetBase
{
    SG::DataStructure::Common::Real m_t        = 0;  ///< Default temperature value
    SG::DataStructure::Common::Id   m_domainId = 0;  ///< 约束自由度方向
};

using TEMPDDataArray = std::vector<SG::DataStructure::FEM::TEMPDData>;

/// @brief 判断两个TEMPDData是否相等
/// @param a
/// @param b
/// @return
DECLSPEC bool operator== (const TEMPDData &a, const TEMPDData &b);

/// @brief 比较两个SPCData大小
/// @param SGDataA
/// @param SGDataB
/// @return
DECLSPEC bool operator< (const TEMPDData &SGDataA, const TEMPDData &SGDataB);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE